package com.jilefojing.dao;

import java.util.List;

import com.jilefojing.beans.enums.ItemTypeEnumForSource;
import com.jilefojing.beans.enums.ProgressStatusForSource;
import com.jilefojing.beans.enums.StatusEnumForPublish;
import com.jilefojing.beans.pojos.RCategorySource;
import com.jilefojing.beans.query.RCategorySourceQuery;
import com.jilefojing.beans.vo.Pagination;
import com.jilefojing.dao.base.IBaseDao;

/**
 * 
 * @author 作者 jgshun
 * @date 创建时间 2016年07月26日 16时40分30秒
 */
public interface IRCategorySourceDao extends IBaseDao<RCategorySource> {

	Pagination<RCategorySource> getPagination(RCategorySourceQuery rCategorySourceQuery, Pagination<RCategorySource> pagination);

	Pagination<RCategorySource> getPaginationByCategoryIdsForIntersection(List<String> intersectionCategoryConditions, List<StatusEnumForPublish> statuses, List<ItemTypeEnumForSource> returnItemTypes,
			List<ProgressStatusForSource> progressStatuses, Pagination<RCategorySource> pagination);

	List<RCategorySource> getListByItem(ItemTypeEnumForSource itemType, long itemId);

	List<RCategorySource> getListByItems(ItemTypeEnumForSource itemType, List<Long> itemIds);

	void updateByIds(List<RCategorySource> categorySources);

	int countByCategory(String categoryKey, long categoryId);

	int countByCategories(String categoryKey, List<Long> categoryIds);

	List<RCategorySource> getListByCategories(String categoryKey, List<Long> categoryIds);

}
